package cn.liujianbo.example.springbean.bean2;

import cn.liujianbo.example.springbean.bean2.component.AppConfig;
import cn.liujianbo.example.springbean.bean2.component.UserService;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * @author 刘建波
 * @date 2021-10-10 20:50
 * 推断构造
 * 1.没有构造方法时，使用默认无参构造方法创建对象
 * 2.当定义了一个有参构造方法时，参数需能从容器中获取到对应的bean传入构造方法
 * 3.当定义了多个有参构造方法时，需使用 @AutoWired 指定使用哪一个构造方法创建对象，否则无法确定使用那个构造方法，直接报错
 * 4.上述2、3中从容器中取对应bean的流程和依赖注入一致，详见 bean3 依赖注入的内容
 */
public class Test {
    public static void main(String[] args) {
        Class[] annotatedClasses;
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
        UserService userService = (UserService) context.getBean("userService");
    }
}
